void Event_usp(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		if (me.spread.prevtime)
		{
			me.spread.spreadvar = me.spread.spreadvar - (0.275 * (0.3 - (me.spread.gtime - me.spread.prevtime)));

			if (me.spread.spreadvar > 0.92)
				me.spread.spreadvar = 0.92f;
			else if (me.spread.spreadvar < 0.6)
				me.spread.spreadvar = 0.6f;
		}

		me.spread.recoil++;
		me.spread.prevtime = me.spread.gtime;
	}

	uspOrg(args);
}


void Event_mp5n(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;

		me.spread.spreadvar = me.spread.recoil * me.spread.recoil * 0.004543389368468878 + 0.45;

		if (me.spread.spreadvar > 0.75)
			me.spread.spreadvar = 0.75f;

		me.spread.prevtime = me.spread.gtime;
		me.spread.firing = true;
	}

	mp5nOrg(args);
}


void Event_ak47(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.firing = true;

		me.spread.spreadvar = me.spread.recoil * me.spread.recoil * me.spread.recoil / 200 + 0.35;

		if (me.spread.spreadvar > 1.25)
			me.spread.spreadvar = 1.25f;

		me.spread.prevtime = me.spread.gtime;
	}

	ak47Org(args);
}


void Event_aug(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.firing = true;

		me.spread.spreadvar = me.spread.recoil * me.spread.recoil * me.spread.recoil / 215 + 0.3;

		if (me.spread.spreadvar > 1.0)
			me.spread.spreadvar = 1.0f;

		me.spread.prevtime = me.spread.gtime;
	}

	augOrg(args);
}


void Event_deagle(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		if (me.spread.prevtime)
		{
			me.spread.spreadvar = me.spread.spreadvar - (0.35 * (0.4 - (me.spread.gtime - me.spread.prevtime)));

			if (me.spread.spreadvar > 0.9)
				me.spread.spreadvar = 0.9f;
			else if (me.spread.spreadvar < 0.55)
				me.spread.spreadvar = 0.55f;
		}

		me.spread.recoil++;
		me.spread.prevtime = me.spread.gtime;
	}

	deagleOrg(args);
}


void Event_g3sg1(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		if (me.spread.brokentime)
		{
			me.spread.spreadvar = 0.55 + (0.3 * (me.spread.gtime - me.spread.brokentime));

			if (me.spread.spreadvar > 0.98)
				me.spread.spreadvar = 0.98f;
		}

		me.spread.recoil++;
		me.spread.brokentime = me.spread.gtime;
		me.spread.firing = true;
	}

	g3sg1Org(args);
}


void Event_sg550(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		if (me.spread.brokentime)
		{
			me.spread.spreadvar = 0.65 + (0.35 * (me.spread.gtime - me.spread.brokentime));

			if (me.spread.spreadvar > 0.98)
				me.spread.spreadvar = 0.98f;
		}

		me.spread.recoil++;
		me.spread.brokentime = me.spread.gtime;
		me.spread.firing = true;
	}

	sg550Org(args);
}


void Event_glock18(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		if (me.spread.prevtime)
		{
			me.spread.spreadvar = me.spread.spreadvar - (0.275 * (0.325 - (me.spread.gtime - me.spread.prevtime)));

			if (me.spread.spreadvar > 0.9)
				me.spread.spreadvar = 0.9f;
			else if (me.spread.spreadvar < 0.6)
				me.spread.spreadvar = 0.6f;
		}

		me.spread.recoil++;
		me.spread.prevtime = me.spread.gtime;
	}

	glock18Org(args);
}


void Event_m249(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.firing = true;
		
		me.spread.spreadvar = me.spread.recoil * me.spread.recoil * me.spread.recoil / 175 + 0.4;

		if (me.spread.spreadvar > 0.9)
			me.spread.spreadvar = 0.9f;

		me.spread.prevtime = me.spread.gtime;
	}

	m249Org(args);
}


void Event_m3(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.prevtime = me.spread.gtime;
		me.spread.firing = true;
	}

	m3Org(args);
}


void Event_m4a1(struct event_args_s *args)
{
	//float spread[2], x, y;
	//char buffer[256];

	if (args->entindex == me.ent->index)
	{
/*
		sprintf(buffer, "Start m4a1 shot number %d", me.recoil);
		outstream << buffer << std::endl;

		sprintf(buffer, "hl angles: %f %f", args->angles[0], args->angles[1]);
		outstream << buffer << std::endl;

		sprintf(buffer, "me angles: %f %f", me.Angles[0], me.Angles[1]);
		outstream << buffer << std::endl;

		sprintf(buffer, "hl origin: %f %f", args->origin[0], args->origin[1], args->origin[2]);
		outstream << buffer << std::endl;

		sprintf(buffer, "me origin: %f %f", me.Origin[0], me.Origin[1], me.Origin[2]);
		outstream << buffer << std::endl;

		sprintf(buffer, "hl velocity: %f %f %f", args->velocity[0], args->velocity[1], args->velocity[2]);
		outstream << buffer << std::endl;

		sprintf(buffer, "me velocity: %f %f %f", me.Velocity[0], me.Velocity[1], me.Velocity[2]);
		outstream << buffer << std::endl;

		sprintf(buffer, "hl pungle: %f %f", (float)args->iparam1 / 100.0, (float)args->iparam2 / 100.0);
		outstream << buffer << std::endl;

		sprintf(buffer, "me pungle: %f %f", me.PunchAngle[0], me.PunchAngle[1]);
		outstream << buffer << std::endl;

		sprintf(buffer, "hl spread: %f %f", args->fparam1, args->fparam2);
		outstream << buffer << std::endl;

		GetSpreadXY(me.random_seed, 0, me.Velocity, spread);

		sprintf(buffer, "me spread: %f %f", spread[0], spread[1]);
		outstream << buffer << std::endl;

		x = UTIL_SharedRandomFloat(me.random_seed, -0.5, 0.5) + UTIL_SharedRandomFloat(me.random_seed + 1, -0.5, 0.5);
		y = UTIL_SharedRandomFloat(me.random_seed + 2, -0.5, 0.5) + UTIL_SharedRandomFloat(me.random_seed + 3, -0.5, 0.5);

		sprintf(buffer, "vec: %f %f", args->fparam1 / x, args->fparam2 / y);
		outstream << buffer << std::endl;

		sprintf(buffer, "End m4a1 shot number %d", me.recoil);
		outstream << buffer << std::endl;
*/
		me.spread.recoil++;
		me.spread.firing = true;
		
		me.spread.spreadvar = me.spread.recoil * me.spread.recoil * me.spread.recoil / 220 + 0.3;

		if (me.spread.spreadvar > 1)
			me.spread.spreadvar = 1.0f;

		me.spread.prevtime = me.spread.gtime;
	}

	m4a1Org(args);
}


void Event_mac10(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.firing = true;
		
		me.spread.spreadvar = me.spread.recoil * me.spread.recoil * me.spread.recoil / 200 + 0.6;

		if (me.spread.spreadvar > 1.65)
			me.spread.spreadvar = 1.65f;

		me.spread.prevtime = me.spread.gtime;
	}

	mac10Org(args);
}


void Event_p90(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.firing = true;

		me.spread.spreadvar = me.spread.recoil * me.spread.recoil / 175 + 0.45;

		if (me.spread.spreadvar > 1)
			me.spread.spreadvar = 1.0f;

		me.spread.prevtime = me.spread.gtime;
	}

	p90Org(args);
}


void Event_p228(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		if (me.spread.prevtime)
		{
			me.spread.spreadvar = me.spread.spreadvar - (0.3 * (0.325 - (me.spread.gtime - me.spread.prevtime)));

			if (me.spread.spreadvar > 0.9)
				me.spread.spreadvar = 0.9f;
			else if (me.spread.spreadvar < 0.6)
				me.spread.spreadvar = 0.6f;
		}

		me.spread.recoil++;
		me.spread.prevtime = me.spread.gtime;
	}

	p228Org(args);
}


void Event_awp(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.prevtime = me.spread.gtime;
		me.spread.firing = true;
	}

	awpOrg(args);
}


void Event_scout(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.prevtime = me.spread.gtime;
		me.spread.firing = true;
	}

	scoutOrg(args);
}


void Event_sg552(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.firing = true;
		
		me.spread.spreadvar = me.spread.recoil * me.spread.recoil * me.spread.recoil / 220 + 0.3;

		if (me.spread.spreadvar > 1)
			me.spread.spreadvar = 1.0f;

		me.spread.prevtime = me.spread.gtime;
	}

	sg552Org(args);
}


void Event_tmp(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.firing = true;

		me.spread.spreadvar = me.spread.recoil * me.spread.recoil * me.spread.recoil / 200 + 0.55;

		if (me.spread.spreadvar > 1.4)
			me.spread.spreadvar = 1.4f;

		me.spread.prevtime = me.spread.gtime;
	}

	tmpOrg(args);
}


void Event_fiveseven(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		if (me.spread.prevtime)
		{
			me.spread.spreadvar = me.spread.spreadvar - (0.25 * (0.275 - (me.spread.gtime - me.spread.prevtime)));

			if (me.spread.spreadvar > 0.92)
				me.spread.spreadvar = 0.92f;
			else if (me.spread.spreadvar < 0.725)
				me.spread.spreadvar = 0.725f;
		}

		me.spread.recoil++;
		me.spread.prevtime = me.spread.gtime;
	}

	fivesevenOrg(args);
}


void Event_ump45(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.firing = true;

		me.spread.spreadvar = me.spread.recoil * me.spread.recoil / 210 + 0.5;

		if (me.spread.spreadvar > 1.0)
			me.spread.spreadvar = 1.0f;

		me.spread.prevtime = me.spread.gtime;
	}

	ump45Org(args);
}


void Event_xm1014(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		me.spread.recoil++;
		me.spread.prevtime = me.spread.gtime;
		me.spread.firing = true;
	}

	xm1014Org(args);
}


void Event_elite_left(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		if (me.spread.prevtime)
		{
			me.spread.spreadvar = me.spread.spreadvar - (0.275 * (0.325 - (me.spread.gtime - me.spread.prevtime)));

			if (me.spread.spreadvar > 0.88)
				me.spread.spreadvar = 0.88f;
			else if (me.spread.spreadvar < 0.55)
				me.spread.spreadvar = 0.55f;
		}

		me.spread.recoil++;
		me.spread.prevtime = me.spread.gtime;
	}

	elite_leftOrg(args);
}


void Event_elite_right(struct event_args_s *args)
{
	if (args->entindex == me.ent->index)
	{
		if (me.spread.prevtime)
		{
			me.spread.spreadvar = me.spread.spreadvar - (0.275 * (0.325 - (me.spread.gtime - me.spread.prevtime)));

			if (me.spread.spreadvar > 0.88)
				me.spread.spreadvar = 0.88f;
			else if (me.spread.spreadvar < 0.55)
				me.spread.spreadvar = 0.55f;
		}

		me.spread.recoil++;
		me.spread.prevtime = me.spread.gtime;
	}

	elite_rightOrg(args);
}